import java.util.List;
import java.util.Map;
import java.util.Set;

/**
 * @Features: TODO 纵向 对象 提取器
 * @Instructions: 错误的属性名 全部丢弃
 * @Author: hihuzi  2018/6/27 6:50
 */
public interface PickUpFactory {

    PickUpUtil pickUpUtil = null;

    static PickUpFactory getPickUP() {

        if (pickUpUtil == null)
            return new PickUpUtil();
        return pickUpUtil;
    }


    /**
     * TODO List<T> 提取特定的 属性值 返回 List<Map>
     *
     * @Author:hihuzi 2018/4/30 15:49
     */
    <T> List<Map> pickUp(List<T> objsList, String... strs) throws Exception;

    /**
     * TODO List<T> 提取特定的 属性值 返回 List<value>
     *
     * @Author:hihuzi 2018/4/30 15:49
     */
    <T> Set<String> pickUpSet(List<T> objsList, String... strs) throws Exception;

    /**
     * TODO T 提取特定的 属性值 返回 List<value>
     *
     * @Author:hihuzi 2018/4/30 15:49
     */
    <T> List<String> pickUpList(T obj, List<String> strs) throws Exception;

}
